package com.easy_buy.interceptor;


import com.easy_buy.domain.User;
import com.easy_buy.repository.AopRepository;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;

@Aspect  // 切面也就是增加的额外的功能
public class MyInterceptor {
    @Autowired
    private AopRepository aopRepository;

    // 切点，也就是执行的时机
    @Pointcut("execution(* com.easy_buy.service.AopService.activateUser(..))")
    public void pointActivate() {
    }

    //JointPoint 连接点   切面要插入的地方
    // 通知，这里是后置通知
    @After("(pointActivate() && args(user))")
    public void setOnLine(JoinPoint point, User user) {
        Object[] args = point.getArgs();
        aopRepository.setOnLine(user);
    }
}
